ল্যাম্বডা এক্সপ্রেশন সি#-এর একটি সংক্ষিপ্ত পদ্ধতি, যা ফাংশন বা মেথড লেখাকে সহজ এবং সংক্ষিপ্ত করে তোলে। এটি এনোনিমাস মেথডের মতোই কাজ করে, তবে এর সিনট্যাক্স আরও সহজ এবং স্পষ্ট। সাধারণত, ল্যাম্বডা এক্সপ্রেশন ডেলিগেট, LINQ, ইভেন্ট এবং ফাংশনাল প্রোগ্রামিং প্যাটার্নে ব্যবহৃত হয়।
ল্যাম্বডা এক্সপ্রেশন লেখার নিয়ম:
(parameters) => expression_or_statement_block;
নিচে একটি সাধারণ ল্যাম্বডা এক্সপ্রেশন দেওয়া হয়েছে, যা দুটি সংখ্যার যোগফল বের করে:
Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(5, 3)); // Output: 8
এখানে, Func<int, int, int>
ডেলিগেটটি ব্যবহার করা হয়েছে, যা দুটি int
প্যারামিটার গ্রহণ করে এবং একটি int
রিটার্ন করে। (a, b) => a + b
অংশটি ল্যাম্বডা এক্সপ্রেশন, যেখানে a
এবং b
প্যারামিটার এবং a + b
হচ্ছে আউটপুট।
১. সোজা এবং সংক্ষিপ্ত কোড: ল্যাম্বডা এক্সপ্রেশন কোডকে সহজ এবং সংক্ষিপ্ত করে তোলে। ২. LINQ এ ব্যবহৃত হয়: LINQ (Language Integrated Query) এ ল্যাম্বডা এক্সপ্রেশন প্রায়শই ব্যবহৃত হয়। ৩. কাস্টমাইজড ফাংশন পারামিটার: এটি ফাংশন বা মেথডে কাস্টমাইজড ফাংশনালিটি যুক্ত করতে সাহায্য করে।
LINQ এ ল্যাম্বডা এক্সপ্রেশন অনেক বেশি ব্যবহৃত হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি সংখ্যার তালিকায় ফিল্টারিং করা হয়েছে।
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে শুধুমাত্র জোড় সংখ্যা ফিল্টার করা
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even Numbers:");
evenNumbers.ForEach(n => Console.WriteLine(n));
}
}
এখানে, n => n % 2 == 0
ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে numbers
তালিকার মধ্যে জোড় সংখ্যা ফিল্টার করা হয়েছে।
ল্যাম্বডা এক্সপ্রেশন Action এবং Predicate ডেলিগেটের সাথে সহজেই ব্যবহার করা যায়।
using System;
public class Program
{
public static void Main()
{
// Action ব্যবহার করে ল্যাম্বডা এক্সপ্রেশন
Action<string> greet = name => Console.WriteLine("Hello, " + name);
greet("John"); // Output: Hello, John
// Predicate ব্যবহার করে ল্যাম্বডা এক্সপ্রেশন
Predicate<int> isEven = number => number % 2 == 0;
Console.WriteLine(isEven(4)); // Output: True
}
}
উপরের উদাহরণে,
Action<string>
ব্যবহার করে একটি ল্যাম্বডা এক্সপ্রেশন তৈরি করা হয়েছে, যা একটি স্ট্রিং ইনপুট গ্রহণ করে এবং কনসোলে গ্রিটিং মেসেজ দেখায়।Predicate<int>
ব্যবহার করে ল্যাম্বডা এক্সপ্রেশন তৈরি করা হয়েছে, যা একটি সংখ্যা গ্রহণ করে এবং সেটি জোড় কি না তা যাচাই করে।ল্যাম্বডা এক্সপ্রেশন শুধুমাত্র একটি এক্সপ্রেশন নয়, বরং একটি স্টেটমেন্ট ব্লকও হতে পারে। একাধিক লাইন লিখতে {}
ব্যবহার করতে হবে।
Func<int, int, int> multiply = (a, b) =>
{
Console.WriteLine("Multiplying " + a + " and " + b);
return a * b;
};
Console.WriteLine(multiply(5, 4)); // Output: Multiplying 5 and 4, Result: 20
এখানে ল্যাম্বডা এক্সপ্রেশন স্টেটমেন্ট ব্লক আকারে লেখা হয়েছে, যেখানে কনসোলে একটি মেসেজ প্রিন্ট করার পরে গুণফল রিটার্ন করা হচ্ছে।
ল্যাম্বডা এক্সপ্রেশন সি#-এ কোড লেখাকে সহজ, সংক্ষিপ্ত এবং ফাংশনাল করে তোলে। এটি LINQ এবং ডেলিগেটের সাথে ব্যবহারের জন্য গুরুত্বপূর্ণ। ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে আপনি দ্রুত এবং দক্ষভাবে কোড লিখতে পারবেন, বিশেষ করে যেখানে ফাংশনাল প্রোগ্রামিং প্রয়োজন।
আরও দেখুন...